The Moonbase Engine is a simple extension of the AMT Minimal Engine. The only difference being the addition of several Moonbase actions that simply exploit certain untapped features of the AMT Minimal Engine.
There are no Moonbase Codes - the additional Moonbase actions are only required at the Apple Media Tool level. Once you save your project as text you are back to the minimum. Therefore to build a title you must use the Minimal Codes as supplied with the AMT Minimal Engine.
The primary purpose in creating the Moonbase Engine was to get additional features to Apple Media Tool users without risking their projects to "as is" code bases. The simplicity of the Moonbase Engine also provides an excellent opportunity for novice engine builders to see some basics of engine building. It is a good base to build on.
Using Moonbase Engine 1.2
As the Moonbase Engine is simply an extension of the AMT Minimal Engine there is not a lot to learn once you understand how the AMT Minimal Engine works. The "Add Moonbase" menu item has been added to the "Action" menu to faciliate the addition of Moonbase actions into your projects.
Action menu:
The Moonbase actions are described as follows:-
Scroll by
The "Scroll by" action scrolls the targeted picture or text by the number of pixels as specified in the parameters.
Target types:
(object) Picture handler
(object) Picture Scroller handler
(object) Text handler
(object) Text Scroller handler
Operation code:
theTarget.ScrollBy(-(theX), -(theY));
Parameters dialog:
Scroll to
The "Scroll to" action scrolls the targeted picture or text to the position as specified in the parameters.
The "Scroll to Cell" action scrolls the targeted picture or text to a position, scaled by its on-screen size, as specified in the parameters. (The size of a cell is equal to the on-screen size of the targeted picture or text.)
Picture cells act as psuedo icons and can be used to implement simple button behaviour, achieved by scrolling to cells within the same object according to user events.
The "Set Duration" action sets the targeted objects duration to either the time, or a randomly generated time within the time and the maximum time, as specified in the parameters.
A novelty use of the randomize feature is to start two objects with newly created random durations and the first object to finish gets to determine what happens next.
The "Step by Time" action moves the targeted movie or flipbook on (or back) by the time as specified in the parameters.
Target types:
(object) Movie handler
(object) Movie Controller handler
(object) Flipbook handler
Operation code:
theTarget.StepBy(theTime);
Parameters dialog:
Use Palette of
The "Use Palette of" action sets the screen palette to that of the targeted picture.
Target types:
(object) Picture handler
(object) Picture Scroller handler
(object) Flipbook handler
Operation code:
theTarget.Supplier.UpdateLoadedData();
Parameters dialog:
All Links Merge
The "All Links Merge" action merges the targeted screen into the screen or screens in the binder screen chain. A single screen of common parts can be shared across any number of given screens, resulting in more efficient runtimes and easier project maintenance.
CAUTION: Any merging procedure should only ever be called once (merging is accumulative). It is advisable that merging procedures be performed at the root screen and that the root screen be not returned to.
Example:
Pop All Links
Push Link "Scene 1"
Push Link "Scene 2"
Push Link "Scene 3"
All Links Merge "Scene Common Parts"
Pop All Links
Target types:
(screen) container
Operation code:
theTarget.Binder.EachUp(Merge, theTarget);
Parameters dialog:
Pop Link
The "Pop Link" action removes the most recent screen (which is not the current screen) from the binder screen chain. (Each "Go to" action adds the current screen to the binder screen chain.)
Target types:
(document) binder
Operation code:
if oBinder.Count() > 0 then
oBinder.Pop();
end;
Parameters dialog:
Pop All Links
The "Pop All Links" action removes every screen from the binder screen chain. The "Go Back to Root" action also removes every screen from the binder screen chain but it transitions to the root screen as well which may not always be desirable. (Each "Go to" action adds the current screen to the binder screen chain.)
Target types:
(document) binder
Operation code:
oBinder.Empty();
Parameters dialog:
Push Link
The "Push Link" action causes the targeted screen to be added to the binder screen chain. It does not cause a transition to the targeted screen, to do so would require a following "Go Back" action and in such a case the transitioned screen would not be evident in the binder screen chain. This is useful for transitioning to screens without ever adding the current screen to the binder screen chain.
Target types:
(screen) container
Operation code:
oBinder.Push(theScreen);
Parameters dialog:
Engine Builders Note
In order to build the Moonbase Engine sources you will need to drag a copy of the UserStartup•keyMoonbase file to your MPW folder. Start or restart MPW and locate your keyMoonbase folder as requested, then set your project to the AMTE folder located within the Moonbase Engine Sources folder.
Contacting Moonbase
If you are interested in learning more about our company, or want to offer some feedback on the Moonbase Engine or its sources, please contact us. We look forward to hearing from you.
THE MATERIALS CONTAINED WITHIN THE MOONBASE FOLDER ON THIS COMPACT DISC ARE PROVIDED BY MOONBASE ENTERPRISES PTY LTD (ACN 072 298 554) "AS IS". WITH RESPECT TO SUCH MATERIALS, MOONBASE ENTERPRISES PTY LTD (ACN 072 298 554) PROVIDES NO WARRANTY, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.